home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr48 / vdl020d.zip / VGI.DOC < prev    next >
Text File  |  1993-04-14  |  3KB  |  205 lines

  1. Program VGI;
  2.  
  3.  
  4. Uses
  5.  
  6.   DOS,
  7.   VTypes,
  8.   VGen,
  9.   VDOSHigh;
  10.  
  11.  
  12. Procedure GrabInterface(          IncPreFace  : BOOLEAN;
  13.                                   IncDocs     : BOOLEAN;
  14.                                   InFile      : STRING;
  15.                                   OutFile     : STRING     );
  16.  
  17. Var
  18.  
  19.   FI : TEXT;
  20.   FO : TEXT;
  21.  
  22.   T  : STRING;
  23.   T2 : STRING;
  24.  
  25.   FoundInterface : BOOLEAN;
  26.   FoundImp       : BOOLEAN;
  27.  
  28.   FoundDocStart  : BOOLEAN;
  29.  
  30. BEGIN
  31.  
  32.   Assign( FI, InFile );
  33.   Reset( FI );
  34.  
  35.   Assign( FO, OutFile );
  36.   Rewrite( FO );
  37.  
  38.   FoundInterface := FALSE;
  39.   FoundImp       := FALSE;
  40.  
  41.   While (Not Eof( FI )) and (FoundImp=FALSE) Do
  42.   BEGIN
  43.  
  44.     ReadLn( FI, T );
  45.  
  46.     T2 := UpperString( TrimChar( T, Center, ' ' ));
  47.  
  48.     If T2 = 'IMPLEMENTATION' Then
  49.       FoundImp := TRUE
  50.     ELSE
  51.     BEGIN
  52.  
  53.       If T2 = 'INTERFACE' Then
  54.       BEGIN
  55.  
  56.         FoundInterface := TRUE;
  57.  
  58.       END
  59.       ELSE
  60.       BEGIN
  61.  
  62.         If (IncPreFace) or (FoundInterface) Then
  63.         BEGIN
  64.           WriteLn( FO, T );
  65.  
  66.         END;  { if incpreface or foundinterface }
  67.  
  68.       END; { if t2=interface / else }
  69.  
  70.     END; { if t2=implementation / else }
  71.  
  72.   END; { while not eof ... }
  73.  
  74.  
  75.   If IncDocs Then
  76.   BEGIN
  77.  
  78.  
  79.     { grab the documentation }
  80.  
  81.     FoundDocStart := FALSE;
  82.  
  83.     While (Not Eof( FI )) Do
  84.     BEGIN
  85.  
  86.       ReadLn( FI, T );
  87.  
  88.       If FoundDocStart Then
  89.       BEGIN
  90.  
  91.         If Copy( T, 1, 3 )='-*)' Then
  92.         BEGIN
  93.  
  94.           FoundDocStart := FALSE
  95.  
  96.         END
  97.         ELSE
  98.         BEGIN
  99.  
  100.           WriteLn( FO, T );
  101.  
  102.         END; { if t[1..3] = -*) / else }
  103.  
  104.       END { if founddocstart }
  105.       ELSE
  106.       BEGIN
  107.  
  108.         If Copy( T, 1, 3 )='(*-' Then
  109.         BEGIN
  110.  
  111.           FoundDocStart := TRUE;
  112.  
  113.           WriteLn( FO, '' );
  114.           WriteLn( FO, '──────────────────────────────────────────────────────────────────────────────' );
  115.           WriteLN( FO, '' );
  116.  
  117.         END; { if t[1..3] = (*- / else }
  118.  
  119.       END; { if founddocstart / else }
  120.  
  121.     END; { while not eof }
  122.  
  123.   END; { if IncDocs }
  124.  
  125.  
  126.   Close( FI );
  127.   Close( FO );
  128.  
  129.  
  130. END; { procedure grabinterface }
  131.  
  132.  
  133. {----------------------------------------------------------------}
  134.  
  135.  
  136. Procedure SearchFiles( WildCard : STRING );
  137.  
  138.  
  139. Var
  140.  
  141.   DirInfo : SearchRec;
  142.  
  143.   DestFile : STRING;
  144.  
  145. BEGIN
  146.  
  147.   FindFirst( WildCard, Archive, DirInfo );
  148.  
  149.   While DosError = 0 Do
  150.   BEGIN
  151.  
  152.     If UpperString( ParamStr( 2 ) ) = 'DOCS' Then
  153.     BEGIN
  154.  
  155.       DestFile := MaskWildCards( DirInfo.Name, '*.DOC' );
  156.  
  157.       WriteLn( DirInfo.Name+' -=> ', DestFile );
  158.  
  159.       GrabInterface( TRUE,
  160.                      TRUE,
  161.                      DirInfo.Name,
  162.                      DestFile      );
  163.  
  164.     END
  165.     ELSE
  166.     BEGIN
  167.  
  168.  
  169.       DestFile := MaskWildCards( DirInfo.Name, '*.INT' );
  170.  
  171.       WriteLn( DirInfo.Name+' -=> ', DestFile );
  172.  
  173.       GrabInterface( TRUE,
  174.                      FALSE,
  175.                      DirInfo.Name,
  176.                      DestFile      );
  177.  
  178.     END;
  179.  
  180.     FindNext(DirInfo);
  181.  
  182.   END;
  183.  
  184. END;
  185.  
  186.  
  187. {----------------------------------------------------------------}
  188.  
  189. BEGIN
  190.  
  191.   WriteLn;
  192.   WriteLn('Visionix Grab Interface Program (VGI) 0.95');
  193.   WriteLN('Copyright 1993 Visionix');
  194.   WriteLn('ALL RIGHTS RESERVED');
  195.   WriteLn;
  196.  
  197.   If ParamCount>=1 Then
  198.     SearchFiles( ParamStr( 1 ) )
  199.   ELSE
  200.     WriteLn('Usage:  VGI filespec [docs]');
  201.  
  202.   WriteLn;
  203.  
  204. END.
  205.